package com.ruoyi.system.domain;

import com.ruoyi.system.entity.AbdulBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 用户通知规则，定义消费过程中的提醒、问候及续费优先权等交互规则对象 user_notification_rules
 *
 * @author ruoyi
 * @date 2025-05-13
 */
@Data
@ApiModel("用户通知规则，定义消费过程中的提醒、问候及续费优先权等交互规则对象")
public class UserNotificationRules extends AbdulBaseEntity {
    private static final long serialVersionUID = 1L;

    /** 用户通知规则表唯一标识ID，主键自增 */
    @ApiModelProperty("用户通知规则表唯一标识ID，主键自增")
    private Long id;

    /** 用户自助预订开关（0=关闭，1=开启）：控制用户是否可自助发起预订流程 */
    @ApiModelProperty("用户自助预订开关（0=关闭，1=开启）：控制用户是否可自助发起预订流程")
    @Excel(name = "用户自助预订开关", readConverterExp = "0==关闭，1=开启")
    private Integer userSelfBookingEnabled;

    /** 结束前首次通知分钟数（如30表示消费结束前30分钟首次提醒） */
    @ApiModelProperty("结束前首次通知分钟数（如30表示消费结束前30分钟首次提醒）")
    @Excel(name = "结束前首次通知分钟数", readConverterExp = "如=30表示消费结束前30分钟首次提醒")
    private Integer firstReminderBeforeEndMinutes;

    /** 结束前再次通知分钟数（如10表示消费结束前10分钟再次提醒） */
    @ApiModelProperty("结束前再次通知分钟数（如10表示消费结束前10分钟再次提醒）")
    @Excel(name = "结束前再次通知分钟数", readConverterExp = "如=10表示消费结束前10分钟再次提醒")
    private Integer secondReminderBeforeEndMinutes;

    /** 启用消费提醒（0=关闭，1=开启）：控制是否向用户推送消费提醒 */
    @ApiModelProperty("启用消费提醒（0=关闭，1=开启）：控制是否向用户推送消费提醒")
    @Excel(name = "启用消费提醒", readConverterExp = "0==关闭，1=开启")
    private Integer consumptionReminderEnabled;

    /** 消费提醒内容（支持动态变量，如：{user_name}，{table_name}，{remain_time}） */
    @ApiModelProperty("消费提醒内容（支持动态变量，如：{user_name}，{table_name}，{remain_time}）")
    @Excel(name = "消费提醒内容", readConverterExp = "支=持动态变量，如：{user_name}，{table_name}，{remain_time}")
    private String consumptionReminderContent;

    /** 开始消费欢迎词（用户点击“开始消费”时推送） */
    @ApiModelProperty("开始消费欢迎词（用户点击“开始消费”时推送）")
    @Excel(name = "开始消费欢迎词", readConverterExp = "用=户点击“开始消费”时推送")
    private String welcomeMessageOnStart;

    /** 结束消费欢送词（消费结束或用户点击“结束消费”时推送） */
    @ApiModelProperty("结束消费欢送词（消费结束或用户点击“结束消费”时推送）")
    @Excel(name = "结束消费欢送词", readConverterExp = "消=费结束或用户点击“结束消费”时推送")
    private String farewellMessageOnEnd;

    /** 当前客人优先续费权（0=关闭，1=开启）：开启时，当前客人可在消费结束后优先续费（如续费后保留原桌台） */
    @ApiModelProperty("当前客人优先续费权（0=关闭，1=开启）：开启时，当前客人可在消费结束后优先续费（如续费后保留原桌台）")
    @Excel(name = "当前客人优先续费权", readConverterExp = "0==关闭，1=开启")
    private Integer currentGuestExtensionPriority;

    /** 规则适用范围：all（全局规则，适用于所有用户和门店），store（门店级规则，需关联门店ID），user_level（用户等级规则，需关联用户等级ID） */
    @ApiModelProperty("规则适用范围：all（全局规则，适用于所有用户和门店），store（门店级规则，需关联门店ID），user_level（用户等级规则，需关联用户等级ID）")
    @Excel(name = "规则适用范围：all", readConverterExp = "全=局规则，适用于所有用户和门店")
    private String ruleScope;

    /** 手机号 */
    @ApiModelProperty("手机号")
    @Excel(name = "手机号")
    private String phone;
}